package com.example.aiquestions.service;

import com.example.aiquestions.entity.QuestionLibrary;
import com.example.aiquestions.model.dto.QuestionDetail;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface QuestionLibraryService {

    /**
     * 根据题库ID获取题库信息
     */
    QuestionLibrary getLibraryById(String id);

    /**
     * 根据用户ID和学科ID获取题库列表（分页）
     */
    PageInfo<QuestionLibrary> getLibraryListByUserAndSubject(Long userId, Long subjectId, int pageNum, int pageSize);

    /**
     * 根据学科ID获取题库列表（分页）
     */
    PageInfo<QuestionLibrary> getLibraryListBySubject(Long subjectId, int pageNum, int pageSize);

    /**
     * 创建题库
     */
    QuestionLibrary createLibrary(Long userId, Long subjectId, String name, List<Long> questionIds);

    /**
     * 更新题库
     */
    QuestionLibrary updateLibrary(String id, String name, Long subjectId);

    /**
     * 删除题库（软删除）
     */
    boolean deleteLibrary(String id);

    /**
     * 添加题目到题库
     */
    QuestionLibrary addQuestionsToLibrary(String libraryId, List<Long> questionIds);

    /**
     * 从题库中删除题目
     */
    QuestionLibrary deleteQuestionsFromLibrary(String libraryId, List<Long> questionIds);

    /**
     * 获取题库中的题目
     */
    List<QuestionDetail> getLibraryQuestions(String libraryId);

}
